/**
 * hnjz.com Inc.
 * Copyright (c) 2004-2014 All Rights Reserved.
 */
package com.hnjz.sys.function;

import java.util.List;

/**
 * 功能相关的查询
 * 
 * @author lijingfen
 * @version $Id: FunMapper.java,  $
 */
public interface FunMapper {

    /**
     * 根据功能ID获取功能对象
     * 
     * @param id 主键，功能Id
     * @return 功能对象
     */
    Function findById(String id);

    /**
     * 根据父功能取功能对象列表
     * 
     * @return 功能对象
     */
    List<Function> findByPid(String parent);

    /**
     * 根据功能名获取功能对象列表
     * 
     * @return 功能对象
     */
    List<Function> findByName(Function fun);

    /**
     * 插入一个功能
     * 
     * @param user 功能对象
     * @return 插入的条数
     */
    int save(Function fun);

    /**
     * 更新一个功能对象
     * 
     * @param user 功能对象
     * @return 更新记录的条数
     */
    int update(Function fun);

    /**
     * 根据Id删除功能
     * 
     * @param id 
     * @return 删除的条数
     */
    int deleteById(String id);

    /**
     * 根据功能Id
     * 
     * @param id 功能Id
     * @return 更新记录的条数
     */
    long selectCountByName(Function fun);

    /**
     * 根据功能名获取功能对象列表
     * 
     * @return 功能对象
     */
    List<Function> findList();

    /**
     * 查询角色所具有的功能列表
     * 
     * @param roleId 角色Id
     * @return 角色所具有的功能列表
     */
    List<Function> findByRoleId(String roleId);

}
